package 字符串算法;

import java.util.Stack;

public class 字符串变形 {
        public String trans(String s, int n) {
            //用栈的思想去实现
            Stack<String> stack = new Stack<>();
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < s.length(); i++) {
                if (s.charAt(i) == ' '){
                    stack.push(sb.toString());
                    stack.push(" ");
                    //遇到一个空格就把之前的压入 再创建一个新的继续装下一个空格
                    sb = new StringBuilder();
                    //并且提早结束当前循环 不要执行下一句了
                    continue;
                }
                //把字符装进sb并且大小写变一下
                sb.append(convert(s.charAt(i)));

            }
            //这里的判断是如果没有空格的时候
            if (sb.length()!=0){
                stack.push(sb.toString());
            }
            sb = new StringBuilder();
            while (!stack.isEmpty()){
                sb.append(stack.pop());
            }
            return sb.toString();
        }
        private char convert(char dataChar){
            if (Character.isUpperCase(dataChar)){
                dataChar = Character.toLowerCase(dataChar);
            }else if (Character.isLowerCase(dataChar)){
                dataChar = Character.toUpperCase(dataChar);
            }
            return dataChar;
        }
}
